/*符号表：
功能：保存Pascal源程序中的
所有标识符id及其对应的名字、类型、值、属性和作用域、额外信息
*/


typedef struct Table
{
	Table* next;
	int id;

	char name[30];//名字 
	int type; //类型  integer boolean real char  1 2 3 4 
	int value;//种类  过程、变量 
	string attribute; //属性 
	int row;//声明行
	int line[10];//引用行 
	char information[];//额外信息  


}Table, * LinkTable;


LinkTable init()
{
	LinkTable T;
	T = (Table*)malloc(sizeof(Table));
	L->next = NULL;
	L->id = 0;

	return L;

}

//元素查找 返回所在位置 没有则返回-1
int Search(LinkTable T, char data[]) {
	//bool flag = false;
	int i = 0;
	Table* first;
	first = T;
	while (T->next != NULL) {
		while (data[i] != '\0' && T->next->data[i] != '\0') {
			if (data[i] == T->next->data[i]) {
				i++;
				if (data[i] == '\0' && T->next->data[i] == '\0') {
					return T->next->location;
				}
			}
			else {
				break;
			}
		}
		T = T->next;
		i = 0;
	}
	T = first;
	return -1;//表示没有相同元素
}
